package edu.northwestern.cbits.purple_robot_manager; import org.json.JSONException; import org.json.JSONObject; import edu.northwestern.cbits.purple_robot_manager.config.LegacyJSONConfigFile; import edu.northwestern.cbits.purple_robot_manager.logging.LogManager; import edu.northwestern.cbits.purple_robot_manager.scripting.BaseScriptEngine; import edu.northwestern.cbits.purple_robot_manager.scripting.JavaScriptEngine; import edu.northwestern.cbits.purple_robot_manager.triggers.TriggerManager; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.preference.PreferenceManager; public class BootUpReceiver extends BroadcastReceiver { public static final String BOOT_KEY = "system_last_boot"; public void onReceive(Context context, Intent intent) { if ("android.intent.action.BOOT_COMPLETED".equals(intent.getAction())) { long now = System.currentTimeMillis(); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); Editor e = prefs.edit(); e.putLong(BootUpReceiver.BOOT_KEY, now); e.commit(); LegacyJSONConfigFile.getSharedFile(context.getApplicationContext()); TriggerManager.getInstance(context).fireMissedTriggers(context, now); if (prefs.contains(BaseScriptEngine.STICKY_NOTIFICATION_PARAMS)) { try { JSONObject json = new JSONObject(prefs.getString(BaseScriptEngine.STICKY_NOTIFICATION_PARAMS, "{}")); JavaScriptEngine engine = new JavaScriptEngine(context); engine.showScriptNotification(json.getString("title"), json.getString("message"), json.getBoolean("persistent"), json.getBoolean("sticky"), json.getString("script")); } catch (JSONException ex) { LogManager.getInstance(context).logException(ex); } } } ManagerService.setupPeriodicCheck(context); } }